package xyccontroller

import (
	"Cgo/common"
	_ "Cgo/front/models"
	"strconv"

	"github.com/gin-gonic/gin"
)

func XycShopController(r *gin.RouterGroup) {
	r.GET("/findById", common.HandlerFunc(findShopById))
	r.GET("/findByStatus", common.HandlerFunc(findShopByStatus))
	r.GET("/findByClassify", common.HandlerFunc(findShopByClassify))
	r.GET("/findByName", common.HandlerFunc(findShopByName))
}

// 根据id查询商品,不传id则查询所有商品
// @Summary 根据id查询商品
// @Tags xyc_shop前台接口
// @Accept json
// @Produce json
// @Param id query int false "商品id"
// @Success 200 {object} common.RT[[]models.XycShop]
// @Router /front/xyc/shop/findById [get]
func findShopById(c *gin.Context) common.Result {
	idStr := c.Query("id")
	id, _ := strconv.Atoi(idStr)
	shopList, err := ShopDao.FindShopByIdDao(id)
	if err != nil {
		return common.R.Fail(err.Error())
	}
	return common.R.Success(shopList)
}

// 根据状态返回商品列表
// @Summary 根据状态返回商品列表
// @Tags xyc_shop前台接口
// @Accept json
// @Produce json
// @Param status query string false "商品状态"
// @Success 200 {object} common.RT[[]models.XycShop]
// @Router /front/xyc/shop/findByStatus [get]
func findShopByStatus(c *gin.Context) common.Result {
	status := c.Query("status")
	shopList, err := ShopDao.FindShopByStatusDao(status)
	if err != nil {
		return common.R.Fail(err.Error())
	}
	return common.R.Success(shopList)
}

// 根据分类查询商品列表
// @Summary 根据分类查询商品列表
// @Tags xyc_shop前台接口
// @Accept json
// @Produce json
// @Param classify query string false "商品分类"
// @Success 200 {object} common.RT[[]models.XycShop]
// @Router /front/xyc/shop/findByClassify [get]
func findShopByClassify(c *gin.Context) common.Result {
	classify := c.Query("classify")
	shopList, err := ShopDao.FindShopByClassifyDao(classify)
	if err != nil {
		return common.R.Fail(err.Error())
	}
	return common.R.Success(shopList)
}

// 根据商品名字模糊查询商品列表
// @Summary 根据商品名字模糊查询商品列表
// @Tags xyc_shop前台接口
// @Accept json
// @Produce json
// @Param name query string false "商品名字"
// @Success 200 {object} common.RT[[]models.XycShop]
// @Router /front/xyc/shop/findByName [get]
func findShopByName(c *gin.Context) common.Result {
	name := c.Query("name")
	shopList, err := ShopDao.FindShopByNameDao(name)
	if err != nil {
		return common.R.Fail(err.Error())
	}
	return common.R.Success(shopList)
}
